home *** CD-ROM | disk | FTP | other *** search
/ Amiga Game-Power / Amiga Game-Power.iso / anwendungen / gw print / structurebrowser_v1.3 / sources / sbgfx.c < prev    next >
C/C++ Source or Header  |  1994-05-20  |  6KB  |  188 lines

  1. /*
  2.    Handles the BitMap and RastPort structures
  3.  
  4.    Not implemented:
  5.       RastPort.TmpRas
  6.       RastPort.AreaInfo
  7.       RastPort.GelsInfo
  8.       RastPort.Flags
  9.       RastPort.TxFlags
  10. */
  11.  
  12. #include "header/sb.h"
  13.  
  14. extern int level;
  15.  
  16. PrBitMap (string, bitmap)
  17. char *string;
  18. struct BitMap *bitmap;
  19. {
  20. static struct StructData structdata [] = {
  21.    {"-BytesPerRow", "UWORD",    PRUINT,   INTSIZE    },
  22.    {"-Rows",        "UWORD",    PRUINT,   INTSIZE    },
  23.    {"-Flags",       "UBYTE",    PRUBYTE,  BYTESIZE   },
  24.    {"-Depth",       "UBYTE",    PRUBYTE,  BYTESIZE   },
  25.    {"-Pad",         "UWORD",    PRUINT,   INTSIZE    },
  26.    {" Planes[8]",   "PLANEPTR", PRPTR,    PTRSIZE * 8}
  27. };
  28.  
  29. int i, sum, choice = -1;
  30.  
  31.    level++;
  32.  
  33.    while (choice)
  34.    {
  35.       sum = SetOptionText(string, structdata, (APTR)bitmap, DATASIZE, 0);
  36.  
  37.       if ((choice = GetChoice(DATASIZE)) == 6)
  38.          PrPlanes("BitPlanes belong to the BitMap", bitmap->Planes,
  39.                   bitmap->Rows, bitmap->BytesPerRow);
  40.    }
  41.    level--;
  42. }
  43.  
  44.  
  45. PrPlanes (string, planes, rows, bytes)
  46. char *string;
  47. PLANEPTR planes[];
  48. UWORD rows, bytes;
  49. {
  50. static struct StructData structdata [] = {
  51.    {" BitPlane[0]",   "PLANEPTR", PRPTR, PTRSIZE},
  52.    {" BitPlane[1]",   "PLANEPTR", PRPTR, PTRSIZE},
  53.    {" BitPlane[2]",   "PLANEPTR", PRPTR, PTRSIZE},
  54.    {" BitPlane[3]",   "PLANEPTR", PRPTR, PTRSIZE},
  55.    {" BitPlane[4]",   "PLANEPTR", PRPTR, PTRSIZE},
  56.    {" BitPlane[5]",   "PLANEPTR", PRPTR, PTRSIZE},
  57.    {" BitPlane[6]",   "PLANEPTR", PRPTR, PTRSIZE},
  58.    {" BitPlane[7]",   "PLANEPTR", PRPTR, PTRSIZE}
  59. };
  60.  
  61. int i, sum, choice = -1;
  62.  
  63.    level++;
  64.  
  65.    while (choice)
  66.    {
  67.       sum = SetOptionText(string, structdata, (APTR)planes, DATASIZE, 0);
  68.       choice = GetChoice(8);
  69.       if (choice >= 1 && choice <= 8 && planes[choice - 1])
  70.          HexDump(structdata[choice - 1].membername,
  71.                  planes[choice - 1], PTRSIZE, (long)(rows * bytes));
  72.    }
  73.    level--;
  74. }
  75.  
  76.  
  77. PrRastPort (string, rastport)
  78. char *string;
  79. struct RastPort *rastport;
  80. {
  81. static struct StructData structdata [] = {
  82.    { " Layer",           "struct Layer *",      PRPTR,   PTRSIZE  },
  83.    { " BitMap",          "struct BitMap *",     PRPTR,   PTRSIZE  },
  84.    { "-Area Ptrn",       "USHORT *",            PRPTR,   PTRSIZE  },
  85.    { "(TmpRas",          "struct TmpRas *)",    PRPTR,   PTRSIZE  },
  86.    { "(AreaInfo",        "struct AreaInfo *)",  PRPTR,   PTRSIZE  },
  87.    { "(GelsInfo",        "struct GelsInfo *)",  PRPTR,   PTRSIZE  },
  88.    { "-Mask",            "UBYTE",               PRUBYTE, BYTESIZE },
  89.    { "-FgPen",           "BYTE",                PRBYTE,  BYTESIZE },
  90.    { "-BgPen",           "BYTE",                PRBYTE,  BYTESIZE },
  91.    { "-AOlPen",          "BYTE",                PRBYTE,  BYTESIZE },
  92.    { "-DrawMode",        "BYTE",                PRBYTE,  BYTESIZE },
  93.    { "-AreaPtSz",        "BYTE",                PRBYTE,  BYTESIZE },
  94.    { "-linpatcnt",       "BYTE",                PRBYTE,  BYTESIZE },
  95.    { "-dummy",           "BYTE",                PRBYTE,  BYTESIZE },
  96.    { "(Flags",           "USHORT)",             PRUBYTE, INTSIZE  },
  97.    { "-LinePtrn",        "USHORT",              PRUBYTE, INTSIZE  }
  98. };
  99.  
  100. int i, sum, choice = -1;
  101.  
  102.    level++;
  103.  
  104.    while (choice)
  105.    {
  106.       sum = SetOptionText(string, structdata, (APTR)rastport, DATASIZE, 0);
  107.  
  108.       switch (choice = GetChoice(MAXGADG + 1))
  109.       {
  110.          case 1:
  111.             if (rastport->Layer)
  112.                PrLayer("The Layer for this RastPort", rastport->Layer);
  113.             break;
  114.          case 2:
  115.             if (rastport->BitMap)
  116.                PrBitMap("The BitMap for this RastPort", rastport->BitMap);
  117.             break;
  118.          case MOREGADG:
  119.             PrRastPort2("More RastPort members", rastport, sum);
  120.             break;
  121.       }
  122.    }
  123.    level--;
  124. }
  125.  
  126.  
  127. PrRastPort2 (string, rastport, offset)
  128. char *string;
  129. struct RastPort *rastport;
  130. int offset;
  131. {
  132. static struct StructData structdata[] = {
  133.    { "-cp_x",            "SHORT",               PRINT,   INTSIZE     },
  134.    { "-cp_y",            "SHORT",               PRINT,   INTSIZE     },
  135.    { " minterms[8]",     "UBYTE",               PRNULL,  BYTESIZE * 8},
  136.    { "-PenWidth",        "SHORT",               PRINT,   INTSIZE     },
  137.    { "-PenHeight",       "SHORT",               PRINT,   INTSIZE     },
  138.    { " Font",            "struct TextFont *",   PRPTR,   PTRSIZE     },
  139.    { "-AlgoStyle",       "UBYTE",               PRUBYTE, BYTESIZE    },
  140.    { "(TxFlags",         "UBYTE)",              PRUBYTE, BYTESIZE    },
  141.    { "-TxHeight",        "UWORD",               PRUINT,  INTSIZE     },
  142.    { "-TxWidth",         "UWORD",               PRUINT,  INTSIZE     },
  143.    { "-TxBaseline",      "UWORD",               PRUINT,  INTSIZE     },
  144.    { "-TxSpacing",       "WORD",                PRINT,   INTSIZE     },
  145.    { "-RP_User",         "WORD",                PRINT,   INTSIZE     },
  146.    { " wordreserved[7]", "UWORD",               PRNULL,  INTSIZE * 7 },
  147.    { " longreserved[2]", "ULONG",               PRNULL,  PTRSIZE * 2 },
  148.    { " reserved[8]",     "UBYTE",               PRNULL,  BYTESIZE * 8}
  149. };
  150.  
  151. int i, sum;
  152. int choice = -1;
  153.  
  154.    level++;
  155.  
  156.    while (choice)
  157.    {
  158.       sum = SetOptionText(string, structdata,
  159.           (APTR)rastport, DATASIZE, offset);
  160.  
  161.       switch (choice = GetChoice(DATASIZE))
  162.       {
  163.          case 3:
  164.             HexDump("Hexdump of RastPort minterms bytes",
  165.                &rastport->minterms[0], BYTESIZE, (long)BYTESIZE * 8);
  166.             break;
  167.          case 6:
  168.             if (rastport->Font)
  169.                PrTextFont("This RastPort's TextFont structure",
  170.                   rastport->Font);
  171.             break;
  172.          case 14:
  173.             HexDump("Hexdump of reserved RastPort words",
  174.                &rastport->wordreserved[0], INTSIZE, (long)INTSIZE * 7);
  175.             break;
  176.          case 15:
  177.             HexDump("Hexdump of reserved RastPort longwords",
  178.                &rastport->longreserved[0], PTRSIZE, (long)PTRSIZE * 2);
  179.             break;
  180.          case 16:
  181.             HexDump("Hexdump of reserved RastPort bytes",
  182.                &rastport->reserved[0], BYTESIZE, (long)BYTESIZE * 8);
  183.             break;
  184.       }
  185.    }
  186.    level--;
  187. }
  188.